ASP.Net Core অ্যাপ্লিকেশনের ভিউ এবং Razor Pages হল ইউজার ইন্টারফেস তৈরির জন্য ব্যবহৃত গুরুত্বপূর্ণ অংশ। Razor হল ASP.Net Core এর জন্য একটি ভিউ ইঞ্জিন, যা HTML, C# কোড এবং Razor সিনট্যাক্স ব্যবহার করে ডাইনামিক ওয়েব পেজ তৈরি করতে সাহায্য করে। Razor Pages আরও একটি আধুনিক ও সহজ পদ্ধতি, যা সিপিএস (Pages Based) আর্কিটেকচারকে সমর্থন করে।
Razor View Engine হল একটি টেমপ্লেট ইঞ্জিন যা HTML এবং C# কোডের সংমিশ্রণ করে। এর মাধ্যমে ডাইনামিক ওয়েব পেজ তৈরি করা যায়। Razor সিম্পল সিনট্যাক্স ব্যবহার করে, যেখানে C# কোড @
চিহ্ন দিয়ে HTML-এর মধ্যে এম্বেড করা হয়। Razor Views সাধারনত .cshtml
এক্সটেনশন সহ থাকে।
Razor সিনট্যাক্সের উদাহরণ:
@{
var message = "Hello, World!";
}
<!DOCTYPE html>
<html>
<head>
<title>Razor Example</title>
</head>
<body>
<h1>@message</h1>
</body>
</html>
এখানে, @{}
ব্লকে C# কোড লেখা হয়েছে এবং @message
দিয়ে HTML তে ডাইনামিক কনটেন্ট দেখানো হয়েছে।
Layout
Razor Views-এ Layout একটি মৌলিক কাঠামো প্রদান করে যা সাইটের সমস্ত পেজের জন্য কমন। এটি হেডার, ফুটার বা সাইডবারের মতো সাধারণ অংশগুলোকে রিপিট করতে সাহায্য করে। Layout ব্যবহার করলে কোড পুনরাবৃত্তি কমে যায়।
Layout ব্যবহার করতে, প্রথমে _Layout.cshtml
ফাইল তৈরি করুন এবং এতে আপনার সাইটের সাধারণ উপাদানগুলি (যেমন হেডার, ফুটার) রাখুন।
<!DOCTYPE html>
<html>
<head>
<title>@ViewData["Title"]</title>
</head>
<body>
<header>
<h1>Welcome to My Site</h1>
</header>
<div>
@RenderBody()
</div>
<footer>
<p>© 2024 My Website</p>
</footer>
</body>
</html>
এখন, আপনার Views-এ Layout ব্যবহার করতে, Razor Page-এ @{ Layout = "_Layout"; }
এই লাইনটি ব্যবহার করুন।
Partial View
Partial View একটি ছোট অংশ যা পূর্ণ পেজের মধ্যে পুনরায় ব্যবহার করা যেতে পারে। এটি সাধারণত UI এর একটি অংশ (যেমন ফর্ম, টেবিল) হিসেবে ব্যবহৃত হয়।
<!-- _ProductList.cshtml -->
@model IEnumerable<Product>
<ul>
@foreach(var product in Model)
{
<li>@product.Name</li>
}
</ul>
এই Partial View কে মূল ভিউতে ব্যবহার করা যায়:
@{ Html.RenderPartial("_ProductList", Model.Products); }
Razor Syntax
Razor সিনট্যাক্স খুবই সরল এবং এটি C# কোডের সংমিশ্রণে HTML তৈরির একটি সহজ উপায়। আপনি সাধারণত @
চিহ্ন দিয়ে Razor কোডের শুরু এবং শেষ চিহ্নিত করেন। উদাহরণস্বরূপ, ভেরিয়েবল প্রিন্ট করতে @variable
ব্যবহার করা হয়।
@{
var title = "Welcome to Razor Pages!";
}
<h1>@title</h1>
Helper Methods
Razor Pages এ বিভিন্ন ধরনের হেল্পার মেথড থাকে যা ডাইনামিক কনটেন্ট জেনারেট করতে সাহায্য করে। উদাহরণস্বরূপ, HTML হেল্পার মেথডের মাধ্যমে ফর্ম তৈরি করা যেতে পারে।
<form asp-action="Create" method="post">
<label for="Name">Product Name</label>
<input type="text" id="Name" name="Name" />
<button type="submit">Submit</button>
</form>
এখানে asp-action="Create"
হেল্পার ব্যবহার করা হয়েছে, যা ASP.Net Core অ্যাকশন মেথডের সাথে ইন্টারঅ্যাক্ট করবে।
Strongly Typed Views
Razor Views-এ যদি আপনি মডেলের প্রপার্টি অ্যাক্সেস করতে চান, তবে আপনাকে প্রথমে @model
ডিরেকটিভ ব্যবহার করে মডেল টাইপ ডিফাইন করতে হবে। এটা আপনাকে টাইপ সেফ কোড লিখতে সহায়তা করে।
@model MyApplication.Models.Product
<h1>@Model.Name</h1>
<p>@Model.Description</p>
এখানে Product
মডেলটির প্রপার্টি অ্যাক্সেস করা হচ্ছে।
Model Binding
Model Binding হল একটি প্রক্রিয়া যার মাধ্যমে ASP.Net Core একটি ফর্মের ডেটা বা রিকোয়েস্ট প্যারামিটারগুলি স্বয়ংক্রিয়ভাবে মডেলে ম্যাপ করে। এটি ডেভেলপারের কাজ সহজ করে দেয়।
[HttpPost]
public IActionResult Create(Product product)
{
if (ModelState.IsValid)
{
// Save product
}
return View(product);
}
এখানে product
প্যারামিটারটি Model Binding এর মাধ্যমে ফর্মের ডেটা স্বয়ংক্রিয়ভাবে ইনজেক্ট হবে।
Razor Pages এবং Razor Views হল ASP.Net Core অ্যাপ্লিকেশন তৈরির জন্য গুরুত্বপূর্ণ টুল। Razor সিনট্যাক্স এবং HTML কোডের সংমিশ্রণে ডাইনামিক ওয়েব পেজ তৈরি করা সম্ভব। Layouts, Partial Views, এবং Razor Helper Methods ব্যবহার করে আপনি ওয়েব পেজগুলোকে আরও মডুলার এবং রিইউজেবল করতে পারেন। Strongly Typed Views এবং Model Binding-এর মাধ্যমে ডাইনামিক ডেটা সঠিকভাবে প্রদর্শন করা যায় এবং ফর্ম সাবমিটের সময় ডেটা সহজে মডেলে বেঁধে দেওয়া সম্ভব।
Razor View Engine হল একটি ডাইনামিক ওয়েব টেমপ্লেট ইঞ্জিন, যা ASP.Net Core অ্যাপ্লিকেশনে ব্যবহৃত হয় HTML এবং C# কোড একত্রে এক্সপ্রেস করার জন্য। এটি HTML মার্কআপের মধ্যে C# কোড ইন্সার্ট করতে সক্ষম এবং ওয়েব পেজে ডাইনামিক কন্টেন্ট রেন্ডার করতে সাহায্য করে। Razor এর মাধ্যমে অ্যাপ্লিকেশন ডেভেলপাররা সহজেই ডাইনামিক ইউজার ইন্টারফেস তৈরি করতে পারেন।
Razor View Engine HTML কোডের মধ্যে C# কোড রেন্ডার করার জন্য একটি বিশেষ সিম্বল ব্যবহার করে, যেটি @
চিহ্ন দিয়ে চিহ্নিত হয়। Razor কোডের মাধ্যমে অ্যাপ্লিকেশন লজিক যেমন লুপ, কন্ডিশনাল স্টেটমেন্ট, ভেরিয়েবল রেফারেন্স ইত্যাদি সহজেই অ্যাক্সেস করা যায়, যা ওয়েব পেজের ডাইনামিক কন্টেন্ট তৈরির জন্য প্রয়োজনীয়। উদাহরণস্বরূপ:
<h1>@Model.Title</h1>
<p>@Model.Description</p>
এখানে @Model.Title
এবং @Model.Description
C# কোড যা Model
অবজেক্টের ডেটা রেন্ডার করে HTML তে দেখায়।
1. সিম্পল এবং ক্লিন সিনট্যাক্স
Razor এর সিনট্যাক্স খুবই সিম্পল এবং ক্লিন। HTML মার্কআপের মধ্যে C# কোড লেখা সহজ, কারণ Razor কোড সাধারণত @
চিহ্ন দিয়ে শুরু হয়, যা HTML-এর সাথে সংঘর্ষ তৈরি করে না। উদাহরণ:
<h2>@DateTime.Now</h2>
এখানে @DateTime.Now
দ্বারা বর্তমান সময় রেন্ডার করা হবে।
2. এক্সপ্রেসিভ এবং পারফরম্যান্স অগ্রাধিকার
Razor প্রক্রিয়াটি সিম্পল এবং দ্রুত রেন্ডারিং নিশ্চিত করে, কারণ এটি ডায়নামিক কন্টেন্ট রেন্ডার করার জন্য কম্পাইল করা কোড ব্যবহার করে, যা অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করে।
3. Strongly Typed Views
Razor ভিউ ইঞ্জিন সঙ্গতিপূর্ণ (strongly typed) ভিউ তৈরি করার সুযোগ দেয়, যা ভিউ এবং মডেলের মধ্যে ডেটা ব্যবস্থাপনাকে আরও নির্ভুল করে তোলে। যখন ভিউ একটি নির্দিষ্ট মডেলের সাথে সম্পর্কিত হয়, তখন কম্পাইল টাইমে ভুল চেক করা সম্ভব হয়। উদাহরণ:
@model MyApp.Models.Product
<h1>@Model.Name</h1>
এখানে @model
ডিরেকটিভ দ্বারা ভিউ একটি নির্দিষ্ট মডেল টাইপের সাথে সম্পর্কিত হয়, যার ফলে টাইপ চেকিং হয় এবং রUNTIME এ ভুল হতে পারে না।
4. HTML এবং C# এর একত্রিত ব্যবহার
Razor সহজভাবে HTML এবং C# কোড একত্রিত করতে পারে, যা ডেভেলপারদের দ্রুত ডাইনামিক ওয়েব পেজ তৈরি করতে সহায়তা করে। উদাহরণ:
<ul>
@foreach(var item in Model.Items)
{
<li>@item.Name</li>
}
</ul>
এই কোডে foreach
লুপ ব্যবহার করে ডাইনামিক কন্টেন্ট রেন্ডার করা হচ্ছে, যেখানে Model.Items
থেকে প্রতিটি আইটেমের নাম দেখানো হচ্ছে।
5. সহজ ইন্টিগ্রেশন
Razor সহজেই অন্যান্য ASP.Net Core কম্পোনেন্টের সাথে ইন্টিগ্রেট করা যায়, যেমন কন্ট্রোলার, মডেল, ডিপেনডেন্সি ইনজেকশন ইত্যাদি।
1. Razor Views
ASP.Net Core অ্যাপ্লিকেশনে সাধারণত Views
ফোল্ডারে Razor ফাইল (যেমন .cshtml
এক্সটেনশনে) রাখা হয়। এই ফাইলগুলিতে HTML এবং C# কোড একত্রিত হয়ে ডাইনামিক পেজ তৈরি করে। উদাহরণ:
Home/Index.cshtml
Account/Login.cshtml
2. Razor Pages
ASP.Net Core 2.0 থেকে Razor Pages পরিচিতি পেয়েছে, যা MVC স্টাইলের থেকেও সরল এবং সহজ। Razor Pages ফোল্ডারে .cshtml
ফাইল থাকে, কিন্তু এটি নিজে কন্ট্রোলার হিসেবে কাজ করে এবং প্রতিটি পেজের জন্য আলাদা হ্যান্ডলার থাকে।
ডাইনামিক কন্টেন্ট রেন্ডারিং
@{
var message = "Welcome to Razor!";
}
<h1>@message</h1>
এখানে Razor কোডের মাধ্যমে message
ভেরিয়েবল ডিফাইন করা হয়েছে এবং তা HTML পেজে রেন্ডার করা হয়েছে।
লুপের মাধ্যমে ডেটা রেন্ডারিং
<ul>
@foreach(var product in Model.Products)
{
<li>@product.Name</li>
}
</ul>
এখানে একটি foreach
লুপ ব্যবহার করে Model.Products
এর প্রতিটি আইটেমের নাম রেন্ডার করা হচ্ছে।
Razor View Engine ASP.Net Core অ্যাপ্লিকেশনের জন্য একটি অত্যন্ত শক্তিশালী এবং ফ্লেক্সিবল টেমপ্লেট ইঞ্জিন। এটি ডাইনামিক কন্টেন্ট রেন্ডার করতে HTML ও C# কোড একত্রিত করতে সক্ষম। Razor এর সুবিধাগুলি যেমন সিম্পল সিনট্যাক্স, strongly typed views, এবং HTML এবং C# এর একত্রিত ব্যবহার ডেভেলপারদের দ্রুত এবং কার্যকর ওয়েব পেজ তৈরি করতে সহায়তা করে। Razor Views এবং Razor Pages উভয়ই ডেভেলপমেন্টে গুরুত্বপূর্ণ ভূমিকা পালন করে এবং ASP.Net Core অ্যাপ্লিকেশনগুলোকে আরও মডুলার ও রক্ষণাবেক্ষণযোগ্য করে তোলে।
ASP.NET Core MVC অ্যাপ্লিকেশনে Layouts এবং Partial Views ব্যবহারের মাধ্যমে ভিউয়ের কাঠামো এবং পুনঃব্যবহারযোগ্যতা উন্নত করা যায়। এগুলো এমন দুটি ফিচার যা বড় এবং কমপ্লেক্স ওয়েব অ্যাপ্লিকেশনগুলোতে কোড পুনঃব্যবহার এবং স্টাইল এক্সটেনশনকে সহজ করে তোলে।
Layout একটি সাধারণ কনটেইনার ফাইল, যা অন্যান্য ভিউগুলোর জন্য একটি সাধারণ কাঠামো প্রদান করে। Layouts মূলত হেডার, ফুটার, ন্যাভিগেশন বার এবং অন্যান্য সাধারণ উপাদান ধারণ করে, যা পুরো সাইট জুড়ে পুনরাবৃত্তি হতে পারে। যখন ভিউ একটি লেআউট ব্যবহার করে, তখন তা স্বয়ংক্রিয়ভাবে লেআউটের মধ্যে রেন্ডার হয়ে যায়।
Layout ফাইল তৈরি করা
Views/Shared
ফোল্ডারে _Layout.cshtml
নামের একটি ফাইল তৈরি করুন।@layout
ডিরেকটিভ ব্যবহার করে লেআউটের রেফারেন্স দিন।_Layout.cshtml (Layout ফাইল):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@ViewData["Title"]</title>
<link href="~/css/site.css" rel="stylesheet" />
</head>
<body>
<header>
<h1>My Website</h1>
<nav>
<ul>
<li><a href="/">Home</a></li>
<li><a href="/About">About</a></li>
<li><a href="/Contact">Contact</a></li>
</ul>
</nav>
</header>
<div class="container">
@RenderBody() <!-- এখানে ভিউয়ের কন্টেন্ট রেন্ডার হবে -->
</div>
<footer>
<p>© 2024 My Website</p>
</footer>
</body>
</html>
এখানে, @RenderBody()
ট্যাগটি লেআউটের মধ্যে ভিউয়ের মূল কন্টেন্ট রেন্ডার করবে।
ভিউ থেকে Layout ব্যবহার করা:
@{
Layout = "_Layout"; // এখানে লেআউট ফাইল নির্দিষ্ট করা হয়েছে
}
<h2>Welcome to the Home Page</h2>
<p>This is the homepage content.</p>
এখানে, এই ভিউটি _Layout.cshtml
ফাইলের মধ্যে রেন্ডার হবে, যেখানে হেডার, ন্যাভিগেশন এবং ফুটার এরকম গ্লোবাল উপাদান থাকবে।
Partial View হল একটি ছোট, পুনঃব্যবহারযোগ্য ভিউ, যা কোনো বড় ভিউয়ের অংশ হিসেবে ব্যবহৃত হয়। এটি সাধারণত একটি নির্দিষ্ট কম্পোনেন্ট বা উপাদান, যেমন ফর্ম, গ্রিড, টেবিল, অথবা অন্য কোনো UI অংশের জন্য ব্যবহৃত হয়।
Partial View তৈরি করা
Views/Shared
ফোল্ডারে একটি .cshtml
ফাইল তৈরি করুন যা নির্দিষ্ট উপাদান বা কম্পোনেন্ট ধারণ করবে।@Html.Partial()
বা @Html.RenderPartial()
মেথড ব্যবহার করে partial view রেন্ডার করা হয়।_ProductList.cshtml (Partial View):
@model IEnumerable<MyApp.Models.Product>
<table>
<thead>
<tr>
<th>Product Name</th>
<th>Price</th>
</tr>
</thead>
<tbody>
@foreach (var product in Model)
{
<tr>
<td>@product.Name</td>
<td>@product.Price</td>
</tr>
}
</tbody>
</table>
এখানে _ProductList.cshtml
একটি partial view যা পণ্যের তালিকা প্রদর্শন করবে। এটি একটি IEnumerable<Product>
মডেল গ্রহণ করে।
Partial View রেন্ডার করা:
@{
Layout = "_Layout";
}
<h2>Product List</h2>
@Html.Partial("_ProductList", Model.Products) <!-- Partial View রেন্ডার করা -->
এখানে, @Html.Partial("_ProductList", Model.Products)
দিয়ে আমরা পণ্যের তালিকা রেন্ডার করছি। এই partial view টি মূল ভিউতে ইনক্লুড করা হয়েছে।
সারাংশ
ASP.NET Core MVC তে Layouts এবং Partial Views দুটি গুরুত্বপূর্ণ উপাদান। Layouts ব্যবহার করে অ্যাপ্লিকেশনের সাধারণ কাঠামো এবং UI উপাদানগুলো পুনঃব্যবহারযোগ্য করা যায়, আর Partial Views ছোট, পুনঃব্যবহারযোগ্য UI অংশ হিসেবে ব্যবহৃত হয়, যা ভিউয়ের মধ্যে অন্তর্ভুক্ত করা যায়। এগুলো অ্যাপ্লিকেশনের কোডকে পরিষ্কার এবং সুসংগঠিত রাখতে সহায়তা করে।
Razor হল একটি সিম্পল এবং শক্তিশালী টেমপ্লেট ইঞ্জিন, যা ASP.Net Core-এ ভিউ (View) তৈরি করতে ব্যবহৃত হয়। Razor সিএসএস, HTML, JavaScript এবং C# কোডকে একটি একক ফাইলে একত্রিত করে, যার মাধ্যমে ডায়নামিক ওয়েব পেজ তৈরি করা যায়। Razor-এ সি# কোড এবং HTML-এর মধ্যে সিম্পল এবং কার্যকরীভাবে মিশ্রণ করা যায়।
Razor সিনট্যাক্স অত্যন্ত সরল এবং এটি HTML ট্যাগের ভিতরে C# কোড ব্যবহার করতে দেয়। Razor কোড সাধারণত @ চিহ্ন দিয়ে শুরু হয়, যা C# কোড ব্লককে HTML থেকে আলাদা করে। Razor কোড লেখার জন্য কয়েকটি সাধারণ সিনট্যাক্স রয়েছে, যেমন:
Razor কোড একক লাইনে C# কোড লেখা যেতে পারে, যেমন:
<h1>@DateTime.Now</h1>
এটি বর্তমান তারিখ এবং সময় পৃষ্ঠায় প্রদর্শন করবে।
Razor-এ C# ভেরিয়েবল ব্যবহার করা খুবই সহজ:
@{
var message = "Hello, Razor!";
}
<p>@message</p>
এখানে, আমরা message
নামক একটি ভেরিয়েবল ডিফাইন করেছি এবং সেটি HTML ট্যাগে ব্যবহার করেছি।
Razor-এ C# কন্ট্রোল স্টেটমেন্ট (যেমন if, foreach, for) ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, একটি if কন্ডিশন:
@if (DateTime.Now.DayOfWeek == DayOfWeek.Sunday)
{
<p>আজ রবিবার!</p>
}
else
{
<p>আজ রবিবার নয়।</p>
}
এখানে, Razor C# কোডের মাধ্যমে ডেটা চেক করছে এবং HTML ট্যাগের মাধ্যমে রেন্ডার করছে।
C# লুপ (যেমন for
, foreach
) Razor টেমপ্লেটে সহজে ব্যবহার করা যায়। উদাহরণ:
<ul>
@foreach (var item in new List<string> { "Apple", "Banana", "Cherry" })
{
<li>@item</li>
}
</ul>
এখানে, আমরা একটি লিস্টের প্রতিটি আইটেম <li>
ট্যাগে রেন্ডার করছি।
Razor টেমপ্লেট ব্যবহার করে অনেক কাজকে আরও সহজ ও ডায়নামিক করা সম্ভব। Razor হেল্পার মেথডগুলি মূলত ছোট ফাংশন যা নির্দিষ্ট কাজ করে। এগুলি সাধারণত HTML ট্যাগ তৈরি করতে বা C# কোড প্রয়োগ করতে ব্যবহার করা হয়। কিছু পরিচিত Razor হেল্পার মেথডের উদাহরণ নিচে দেওয়া হলো:
@Html.ActionLink()
এটি একটি লিঙ্ক তৈরি করে যা নির্দিষ্ট কন্ট্রোলারের অ্যাকশনে রিডাইরেক্ট করে। উদাহরণ:
@Html.ActionLink("Go to Home", "Index", "Home")
এটি "Go to Home" নামে একটি লিঙ্ক তৈরি করবে, যা HomeController
এর Index
অ্যাকশনে রিডাইরেক্ট করবে।
@Html.BeginForm()
এটি একটি HTML ফর্ম তৈরি করতে ব্যবহৃত হয়, যা পোস্ট রিকোয়েস্ট পাঠানোর জন্য ব্যবহৃত হয়:
@using (Html.BeginForm())
{
<input type="text" name="name" />
<button type="submit">Submit</button>
}
এই কোড একটি ফর্ম তৈরি করবে, যা সাবমিট করার পর, ডিফল্টভাবে সেই রিকোয়েস্টটিকে ঐ অ্যাকশনে পাঠাবে।
@Html.TextBoxFor()
এই হেল্পার মেথড ব্যবহার করে আপনি মডেল প্রপার্টি থেকে ডেটা নিয়ে একটি ইনপুট ফিল্ড তৈরি করতে পারেন। উদাহরণ:
@Html.TextBoxFor(model => model.Name)
এটি মডেল Name
প্রপার্টির জন্য একটি ইনপুট ফিল্ড তৈরি করবে।
@Html.ValidationMessageFor()
এটি মডেল প্রপার্টির জন্য ভ্যালিডেশন মেসেজ প্রদর্শন করতে ব্যবহৃত হয়:
@Html.ValidationMessageFor(model => model.Name)
এটি Name
প্রপার্টির জন্য কোনো ভ্যালিডেশন মেসেজ থাকলে সেটি দেখাবে।
@Url.Action()
এটি একটি URL তৈরি করতে ব্যবহৃত হয় যা নির্দিষ্ট কন্ট্রোলারের অ্যাকশনের জন্য রিডাইরেক্ট করবে:
<a href="@Url.Action("Details", "Product", new { id = 1 })">Product Details</a>
এটি ProductController
এর Details
অ্যাকশনের জন্য একটি URL তৈরি করবে এবং এতে id
প্যারামিটারও পাস করবে।
সারাংশ
Razor Syntax এবং Helper Methods ASP.Net Core অ্যাপ্লিকেশনে ডায়নামিক ওয়েব পেজ তৈরি করার জন্য অত্যন্ত গুরুত্বপূর্ণ। Razor সিনট্যাক্স HTML এবং C# কোডের মধ্যে একটি সিম্পল এবং কার্যকরী সংমিশ্রণ তৈরি করে, যা ডায়নামিক কন্টেন্ট প্রক্রিয়া করতে সাহায্য করে। Razor হেল্পার মেথডগুলি কোড পুনরায় ব্যবহারযোগ্যতা, ফর্ম হ্যান্ডলিং, ভ্যালিডেশন এবং ডাইনামিক কন্টেন্ট প্রদর্শন করতে সহায়তা করে, যা ওয়েব ডেভেলপমেন্ট প্রক্রিয়াকে সহজ এবং দ্রুত করে।
Strongly Typed Views এবং Model Binding দুটি গুরুত্বপূর্ণ ধারণা যা ASP.NET Core MVC অ্যাপ্লিকেশন ডেভেলপমেন্টে ব্যবহার করা হয়। এই দুটি কনসেপ্ট কোডের মান বজায় রাখতে, ডেটার মধ্যে নির্ভুলতা নিশ্চিত করতে এবং ডেভেলপমেন্টকে আরও কার্যকরী ও নিরাপদ করতে সহায়ক।
Strongly Typed Views বলতে এমন ভিউকে বোঝায়, যা একটি নির্দিষ্ট Model (মডেল) বা DTO (Data Transfer Object) কে ব্যবহার করে। এর মানে হলো, ভিউটি শুধু একটি নির্দিষ্ট ডেটা টাইপকে রেন্ডার করতে পারে, এবং এটি সেই মডেলের সকল প্রোপার্টি এবং মেথড অ্যাক্সেস করতে সক্ষম।
ASP.NET Core MVC তে Strongly Typed Views ব্যবহার করার মাধ্যমে:
Strongly Typed View তৈরি করতে, প্রথমে একটি মডেল তৈরি করতে হয়। উদাহরণস্বরূপ, একটি Product
মডেল তৈরি করা যেতে পারে:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
এরপর, ভিউতে এই মডেলটি ব্যবহার করতে হবে। নিচে একটি উদাহরণ দেওয়া হলো যেখানে Product
মডেলটি ব্যবহার করা হয়েছে:
@model Product
<h1>Product Details</h1>
<p>Product Id: @Model.Id</p>
<p>Product Name: @Model.Name</p>
<p>Product Price: @Model.Price</p>
এখানে, @model Product
নির্দেশ করে যে এই ভিউটি Product
মডেলকে ব্যবহার করবে। মডেলের প্রোপার্টিগুলো অ্যাক্সেস করতে @Model
ব্যবহার করা হয়।
Model Binding একটি প্রক্রিয়া, যার মাধ্যমে HTTP রিকোয়েস্ট (যেমন: ফর্ম ডেটা, কুয়েরি স্ট্রিং, URL প্যারামিটার ইত্যাদি) অ্যাক্সেস করে তা মডেল অবজেক্টে রূপান্তর করা হয়। এটি ডেটা ফর্ম্যাটিং, টাইপ কনভার্সন এবং ভ্যালিডেশন প্রক্রিয়ার দায়িত্ব পালন করে। Model Binding এর মাধ্যমে ডেভেলপাররা HTTP রিকোয়েস্টে পাঠানো ডেটা খুব সহজেই মডেল ক্লাসে মাইগ্রেট করতে পারেন।
ASP.NET Core MVC তে Model Binding এর সাহায্যে:
ধরা যাক, একটি Product মডেল রয়েছে এবং একটি ফর্মের মাধ্যমে এই মডেলটির ডেটা পাঠানো হচ্ছে। নিচে উদাহরণ দেওয়া হলো:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
public class ProductController : Controller
{
[HttpPost]
public IActionResult Create(Product product)
{
if (ModelState.IsValid)
{
// এখানে product মডেলটির ডেটা ইনপুট হিসাবে পাওয়া যাবে
// ডেটাবেসে সংরক্ষণ বা অন্যান্য কার্যকলাপ করা যাবে
return RedirectToAction("Index");
}
return View(product);
}
}
এখানে, Create
অ্যাকশন মেথডে Product
মডেলটি ইনপুট হিসেবে আসবে। যখন ফর্মটি সাবমিট হবে, ASP.NET Core স্বয়ংক্রিয়ভাবে ফর্মের ডেটা Product
মডেলে বাইনড করে।
@model Product
<form method="post">
<div>
<label for="Id">Product Id</label>
<input type="text" id="Id" name="Id" value="@Model.Id" />
</div>
<div>
<label for="Name">Product Name</label>
<input type="text" id="Name" name="Name" value="@Model.Name" />
</div>
<div>
<label for="Price">Product Price</label>
<input type="text" id="Price" name="Price" value="@Model.Price" />
</div>
<button type="submit">Submit</button>
</form>
এখানে, Create.cshtml ফর্মে Product মডেলের প্রপার্টিগুলো ইনপুট হিসেবে পাঠানো হচ্ছে। ফর্মটি সাবমিট হলে, মডেল বাইনডিং প্রক্রিয়ার মাধ্যমে এই ডেটা Product
মডেলে রূপান্তরিত হবে এবং কন্ট্রোলারের Create
অ্যাকশন মেথডে পাস হবে।
Strongly Typed Views এবং Model Binding ASP.NET Core MVC অ্যাপ্লিকেশন ডেভেলপমেন্টে গুরুত্বপূর্ণ ভূমিকা রাখে। Strongly Typed Views কোডের নির্ভুলতা নিশ্চিত করে এবং Model Binding সহজভাবে ডেটা অ্যাক্সেস ও প্রক্রিয়াকরণে সহায়তা করে। এই দুটি বৈশিষ্ট্য ব্যবহার করে অ্যাপ্লিকেশনটি আরও টেস্টেবল, রিইউজেবল এবং নিরাপদ করা সম্ভব।
common.read_more